Some users use computer systems to draw shapes. When a user uses a computer system to draw shapes, the computer system receives from a pointing device the coordinates of discrete points in the path the user used to draw the shape. The path defined by such points is rarely as smooth as the user wishes it, and the points may not have a uniform spacing between them. However, the user will want the computer system to take the points it receives on the irregular path provided by the user and create a smooth path to create the intended shape. Thus, it can be said that the user wants the computer system to provide an accurate interpretation of what the user intended, not what the user actually provided.
To reduce the amount of data required to represent the shape, conventional computer programs that perform such functions may employ Bezier curves to represent the shapes that represent what the computer system interpreted to be the shapes intended by the user. The shape provided by the user is broken down into Bezier curves defined between two Bezier points with eight parameters. However, because the user's intended shapes could frequently be irregular, such computer systems were required to make a trade off when representing the user-intended shapes using Bezier curves. Either the computer system could represent the curve or shape using a large number of Bezier points or a small number of Bezier points. The larger the number of Bezier points, the closer the shape could be to what the user actually intended, but the larger number of points generated large file sizes that were time-consuming to transfer over a network such as the Internet. Thus, the computer system or the user had to make a choice between a large file size and curves or shapes that accurately represented what the user had intended.
What is needed is a system and method that can accurately represent an intended curve or shape without an unnecessarily large number of Bezier points.